﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimuladorCredito.BL
{
    public class Credito
    {
        private double valorCredito;
        private double valorParcela;
        private double renda;
        private int qtdParcelas;
        private TipoUsuario usuario;
        private bool aprovado;
        private string mensagem;

        public bool Aprovado
        {
            get { return aprovado; }
        }

        public string Mensagem
        {
            get { return mensagem; }
        }

        public double ValorCredito
        {
            get { return valorCredito; }
            set { valorCredito = value; }
        }

        public double ValorParcela
        {
            get { return valorParcela; }
        }

        public double Renda
        {
            get { return renda; }
            set { renda = value; }
        }

        public int QtdParcelas
        {
            get { return qtdParcelas; }
            set { qtdParcelas = value; }
        }

        public TipoUsuario Usuario
        {
            get { return usuario; }
            set { usuario = value; }
        }

        public void Simular()
        {
            this.aprovado = false;
            this.valorParcela = 0.0;
            this.mensagem = "";

            if (this.usuario == TipoUsuario.Estagiario)
            {
                if (this.qtdParcelas > 5 & this.valorCredito < 500.0)
                {
                    this.aprovado = false;
                    this.mensagem = "O máximo de parcelas para valores menores de R$ 500 é 5";
                    return;
                }

                if (this.valorCredito > (this.renda * 0.6))
                {
                    this.aprovado = false;
                    this.mensagem = "Valor do empréstimo deverá ser no máximo de 60% da renda";
                    return;
                }
            }
            else if (this.usuario == TipoUsuario.Funcionário)
            {
                if (this.qtdParcelas > 12)
                {
                    this.aprovado = false;
                    this.mensagem = "O número máximo de parcelas é 12x";
                    return;
                }
            }

            this.valorParcela = this.valorCredito / this.qtdParcelas;
            this.aprovado = true;
            this.mensagem = "Crédito aprovado";
        }

    }
}
